home *** CD-ROM | disk | FTP | other *** search
- Subject: v19i047: FBM, image manipulation library, Part01/08
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Michael.Mauldin@NL.CS.CMU.EDU
- Posting-number: Volume 19, Issue 47
- Archive-name: fbm/part01
-
- The Fuzzy Pixmap Manipulation (FBM) library of programs, in combination
- with Jef Poskanzer's PBM collection, provides a complete package for
- manipulating and converting color and black and whites images,
- including 24bit RGB, 8bit mapped color, 8bit grayscale, and 1bit
- bitmapped images.
-
- The tools include:
- clr2gray Convert color to grayscale
- fbcat Copy image (used for format conversion)
- fbclean Flip isolated pixels (clean image)
- fbedge Compute derivative image (edge detection)
- fbext Extract region, resize, change aspect ratio
- fbhalf Halftone grayscale image (Blue noise, Floyd-Steinberg, etc)
- fbhist Compute histogram
- fbinfo Dump image header
- fbm2pod Convert grayscale image to Diablo graphics (!)
- fbmask Set region to gray value
- fbnorm Normalize image intensity / increase contrast
- fbps Convert to PostScript
- fbquant Color quantization (24 bit to 8..256 colors) Mod. Heckbert
- fbrot Rotate 90, 180, or 270 degrees
- fbsample Sample a 1bit file to produce an 8bit file
- fbsharp Sharpen (edge enhancement) by digital Laplacian
- gray2clr Add a "gray" colormap to a grayscale image
- idiff (and udiff) convert raw byte stream into byte difference
- pbm2ps Convert PBM file to PostScript
- pbmtitle Add a title to a PBM file
- raw2fbm Convert raw file to FBM format (eg: Amiga Digiview files)
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 8)."
- # Contents: MANIFEST README README.lib clr2gray.1 fbclean.1 fbedge.1
- # fbham.1 fbhist.1 fbinfo.1 fbm2pod.1 fbm2tga.c fbmask.1 fbnorm.1
- # fbps.1 fbrot.1 fbsharp.1 flalfb.c flpic.c gray2clr.1 idiff.1
- # idiff.c pbm2ps.1 pbmtitle.1 pbmtitle.c pic2fbm.c qrt2fbm.1
- # raw2fbm.1 tga2fbm.c
- # Wrapped by rsalz@fig.bbn.com on Fri Jun 9 08:38:19 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(2638 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X Features 3
- X MANIFEST 1
- X Makefile 6
- X README 1
- X README.lib 1
- X clr2gray.1 1
- X clr2gray.c 2
- X fbcat.1 2
- X fbcat.c 2
- X fbclean.1 1
- X fbclean.c 2
- X fbedge.1 1
- X fbedge.c 2
- X fbext.1 2
- X fbext.c 5
- X fbhalf.1 3
- X fbhalf.c 4
- X fbham.1 1
- X fbham.c 7
- X fbhist.1 1
- X fbhist.c 2
- X fbinfo.1 1
- X fbinfo.c 2
- X fbm.1 4
- X fbm.h 3
- X fbm2pod.1 1
- X fbm2pod.c 4
- X fbm2tga.c 1
- X fbmask.1 1
- X fbmask.c 2
- X fbnorm.1 1
- X fbnorm.c 3
- X fbps.1 1
- X fbps.c 5
- X fbquant.1 2
- X fbquant.c 8
- X fbrot.1 1
- X fbrot.c 2
- X fbsample.1 2
- X fbsample.c 3
- X fbsharp.1 1
- X fbsharp.c 2
- X flalfb.c 1
- X flblue.c 4
- X flbyte.c 3
- X flcavg.c 2
- X flclr.c 5
- X fledge.c 5
- X flextr.c 4
- X flface.c 3
- X flflyd.c 3
- X flgifc.c 6
- X flgife.c 4
- X flgifr.c 7
- X flgifw.c 3
- X fliff.c 7
- X flklnr.c 5
- X flpbm.c 4
- X flpcx.c 6
- X flpic.c 1
- X flrdfb.c 3
- X flread.c 3
- X flrot.c 4
- X flshrp.c 4
- X flsun.c 5
- X fltga.c 6
- X flthre.c 2
- X flwrfb.c 2
- X gray2clr.1 1
- X gray2clr.c 2
- X idiff.1 1
- X idiff.c 1
- X pbm2ps.1 1
- X pbm2ps.c 5
- X pbmtitle.1 1
- X pbmtitle.c 1
- X pic2fbm.c 1
- X qrt2fbm.1 1
- X qrt2fbm.c 2
- X raw2fbm.1 1
- X raw2fbm.c 3
- X tga2fbm.c 1
- END_OF_FILE
- if test 2638 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(5911 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- XThis directory contains the Beta test release (version 0.9) of the
- XFuzzy Pixmap Manipulation (FBM) library of programs. This collection
- X(in combination with Jef Poskanzer's PBM collection) provides a
- Xcomplete package for manipulating and converting color and black and
- Xwhites images, including 24bit RGB, 8bit mapped color, 8bit grayscale,
- Xand 1bit bitmapped images.
- X
- XCompilation
- X
- X Unpack all files in one directory. Edit Makefile and put in
- X appropriate values for
- X
- XFile Formats
- X
- X FBM (-F) FBM file with 256 byte header (with title & credits)
- X Sun (-S) Sun rasterfile with 32 byte header
- X PBM (-P) Poskanzer format for 1bit files
- X GIF (-G) CompuServe GIF format
- X IFF (-I) Amiga IFF files (except HAM mode files)
- X PCX (-Z) PC PaintBrush format for IBM
- X Face (-B) Bennet Yee's 1bit files, used at CMU
- X
- X All programs (except fbinfo) can read any of the formats, and use
- X the magic number to decide the file type. If the input is not a
- X pipe and is compressed using the net standard 'compress' program,
- X the file will be uncompressed as it is read. Note however that
- X the operation to be performed must make sense; that is you cannot
- X halftone a color image, quantize a grayscale image, or resize a
- X 1bit file.
- X
- XFiles and Programs:
- X
- X README This file
- X README.lib Lists the subroutines in libfbm.a
- X Makefile Make utility configuration file
- X fbm.1 General manual entry
- X *.1 Individual manual entries
- X fbm.h Defines FBM data structures
- X
- X clr2gray Convert color to grayscale
- X fbcat Copy image (used for format conversion)
- X fbclean Flip isolated pixels (clean image)
- X fbedge Compute derivative image (edge detection)
- X fbext Extract region, resize, change aspect ratio
- X fbhalf Halftone grayscale image (Blue noise, Floyd-Steinberg, etc)
- X fbhist Compute histogram
- X fbinfo Dump image header
- X fbm2pod Convert grayscale image to Diablo graphics (!)
- X fbmask Set region to gray value
- X fbnorm Normalize image intensity / increase contrast
- X fbps Convert to PostScript
- X fbquant Color quantization (24 bit to 8..256 colors) Mod. Heckbert
- X fbrot Rotate 90, 180, or 270 degrees
- X fbsample Sample a 1bit file to produce an 8bit file
- X fbsharp Sharpen (edge enhancement) by digital Laplacian
- X gray2clr Add a "gray" colormap to a grayscale image
- X idiff (and udiff) convert raw byte stream into byte difference
- X pbm2ps Convert PBM file to PostScript
- X pbmtitle Add a title to a PBM file
- X raw2fbm Convert raw file to FBM format (eg: Amiga Digiview files)
- X
- X
- X
- XExtensions
- X
- X Several file extension conventions are used, but none are enforced
- X
- X .Z Compressed file, appended to other extensions
- X
- X .fbm Standard extension for FBM format files
- X .cbm Sometimes used to mean a 24bit color FBM file
- X
- X .ip 8bit grayscale Amiga file (with 1.2 aspect ratio)
- X .cp 24bit color Amiga file (with 1.2 aspect ratio)
- X
- X .1bit Sun 1bit rastefile
- X .clr Sometimes used to mean a 8bit mapped color Sun file
- X
- X .bm Bennet Yee's "Face" format (1bit)
- X .pbm Poskanzer 1bit format
- X .gif Compuserve GIF format
- X .pcx ZSoft's PCPaintbrush format
- X
- XExample Unix pipelines to view files:
- X
- X Starting with an 8 bit raw Amiga grayscale file, foo.ip, first
- X create an FBM format file with a title and credit, then process
- X that file for viewing on a Sun screen by normalizing, rotating,
- X resizing, sharpening, and halftoning.
- X
- X % raw2fbm -d1 -a1.2 -w640 -h400 \
- X -t'Random Title' -c'Random Credit' < foo.ip > foo.fbm
- X
- X % fbinfo foo.fbm
- X foo.fbm "Random Title"
- X [ Random Credit ]
- X [640x400x8] 8 physbits 1.2 aspect ratio
- X row length 640, plane length 256000, colormap length 0
- X
- X
- X % fbnorm < foo.fbm | \ (normalize)
- X fbrot | \ (rotate 90 deg clockwise)
- X fbext -a1 -W900 -H768 | \ (resize & make aspect ratio 1)
- X fbhalf -s10 -S > foo.1bit (sharpen, halftone, write Sun)
- X
- X
- X
- X Starting with a 24 bit color Amiga file, bar.cp, first create an
- X FBM format file with title and credit, then render that file for
- X viewing on a Sun by normalizing, rotating, sharpening, and
- X quantizing.
- X
- X % raw2fbm -d3 -a1.2 -w640 -h400 \
- X -t'Random Color Title' -c'Random Color Credit' < bar.cp > bar.cbm
- X
- X % fbinfo bar.cbm
- X bar.cbm "Random Color Title"
- X [ Random Color Credit ]
- X [3x640x400x8] 8 physbits 1.2 aspect ratio
- X row length 640, plane length 256000, colormap length 0
- X
- X
- X % fbnorm < bar.cbm | \ (normalize)
- X fbrot | \ (rotate 90 deg clockwise)
- X fbext -a1 -W900 -H768 | \ (resize & make aspect ratio 1)
- X fbsharp 3.0 | \ (sharpen it)
- X fbquant -S > bar.clr (quantize and write Sun)
- X
- X (Note that sharpening is an integral option to the halftoning
- X program using the -s option, but that color images must currently
- X be sharpened using a separate program. Note also that more
- X sharpening is used on black and white images than on color images).
- X
- XNotes on the 'fbext' program
- X
- X Usage: fbext [ -w<width> -h<height> -W<maxwdith> -H<maxheight>
- X -s<size> -a<aspect> -t'title' -c'credits' ]
- X [ x y [ width height ] ]
- X < foo.fbm > bar.fbm
- X
- X fbext (bitmap extract) is a very useful anmd multipurpose program.
- X Its basic operation is to copy a rectangular portion of one image
- X (color or black and white) to a second image, possibly changing
- X either the width or height or both. It can also change the title
- X or credits fields of the image. Because it is so versatile, there
- X are a host of options:
- X
- X -w<num> or -h<num> Force width and/or height to a certain size
- X -W<num> or -H<num> Limit width and height to a certain size
- X -a<num> Force the output to have a given aspect ratio
- X -s<num> Scale image to have no more than a given
- X number of pixels.
- X <x0> <y0> <width> <height> select a rectangular region of the image
- X to extract. The default is the entire image.
- X
- X Note that the output size limits are cumulative. Thus if you set a
- X maximum width, height, and number of pixels, the image will be the
- X smallest of the three limits.
- X
- END_OF_FILE
- if test 5911 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'README.lib' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README.lib'\"
- else
- echo shar: Extracting \"'README.lib'\" \(1823 characters\)
- sed "s/^X//" >'README.lib' <<'END_OF_FILE'
- XThis directory contains the source for the FBM bitmap manipulation
- Xlibrary. The commands implemented allow for resizing, retoning and
- Xrendering of both grayscale and color bitmaps, as well as conversions
- Xto and from a variety of other formats including PBM, Bennet Yee's
- XFACE format, and Sun rasterfiles.
- X
- XSeparate compilation files for libfbm.a:
- X
- X flalfb.c:
- X alloc_fbm (image)
- X free_fbm (image)
- X flblue.c:
- X bluenoise_fbm (input, output, noiselevel)
- X flbyte.c:
- X get_long (rfile, order)
- X get_short (rfile, order)
- X put_long (long, wfile, order)
- X put_short (word, wfile, order)
- X machine_byte_order ()
- X flcavg.c:
- X constravg_fbm (input, output, gamma)
- X flclr.c:
- X clr2gray (input, output, rw, gw, bw)
- X gray2clr (input, output, rw, gw, bw)
- X fledge.c:
- X findedge_fbm (&image, beta)
- X flextr.c:
- X extract_fbm (input, output, xo, yo, w, h, ow, oh,
- X title, credits)
- X flface.c:
- X write_face (image, stream)
- X read_face (image, stream , mstr, mlen)
- X flflyd.c:
- X floyd_fbm (input, output)
- X flgifc.c:
- X flgife.c:
- X flgifr.c:
- X read_gif (image, infile, mstr, mlen)
- X flgifw.c:
- X write_gif (image, infile)
- X fliff.c:
- X read_iff (image, infile, mstr, mlen)
- X write_iff (image, infile)
- X flklnr.c:
- X clean_fbm (input, output, beta, gamma, nbr)
- X flpbm.c:
- X read_pbm (image, infile, mstr, mlen)
- X write_pbm (image, stream)
- X flpcx.c:
- X read_pcx (image, rfile, mstr, mlen)
- X flrdfb.c:
- X read_fbm (image, rfile, mstr, mlen)
- X read_hdr_fbm (image, rfile, mstr, mlen)
- X flread.c:
- X read_bitmap (image, rfname)
- X write_bitmap (image, wfile, type)
- X flrot.c:
- X rotate_fbm (input, output, rot)
- X flshrp.c:
- X sharpen_fbm (input, output, beta)
- X flsun.c:
- X read_sun (image, rfile, mstr, mlen)
- X write_sun (image, wfile)
- X flhtre.c:
- X thesh_fbm (input, output, thresh)
- X flwrfb.c:
- X write_fbm (image, wfile)
- X write_hdr_fbm (image, wfile)
- END_OF_FILE
- if test 1823 -ne `wc -c <'README.lib'`; then
- echo shar: \"'README.lib'\" unpacked with wrong size!
- fi
- # end of 'README.lib'
- fi
- if test -f 'clr2gray.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'clr2gray.1'\"
- else
- echo shar: Extracting \"'clr2gray.1'\" \(1853 characters\)
- sed "s/^X//" >'clr2gray.1' <<'END_OF_FILE'
- X.TH CLR2GRAY 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xclr2gray \- Convert color images to grayscale
- X.SH SYNOPSIS
- X.nf
- Xclr2gray [ -r<red> -g<grn> -b<blu> ] [ -<type> ] < color > gray
- X.fi
- X.SH DESCRIPTION
- X.PP
- XConverts a color image (8bit or 24bit) to an 8 bit grayscale image.
- XIt works for both mapped and unmapped color inputs.
- X.SH OPTIONS
- X.TP
- X.BR -r<num>, -g<num>, -b<num>
- X.I weights,
- Xused to convert the triple <red,green,blue> to a scalar intensity
- Xvalue. If one or more weights are specified, those not specified
- Xdefault to zero. If no weights are specified, NTSC weights (29.9%
- Xred, 58.7% green, 11.4% blue) are used.
- X.TP
- X.BR -B
- X.I face
- Xformat, as used by Bennet Yee's
- X.I face
- Xprogram at CMU.
- X.TP
- X.BR -F
- X.I FBM,
- Xformat (by default, the default). You are guaranteed not
- Xto lose information by specifying FBM as the default.
- X.TP
- X.BR -G
- X.I GIF,
- XCompuserve GIF format.
- X.TP
- X.BR -I
- X.I IFF
- Xformat, interleaved bitmaps (ILBM), used by Amigas.
- X.TP
- X.BR -P
- X.I PBM,
- XJef Poskanzer's bitmap format.
- X.TP
- X.BR -S
- X.I sun,
- XSun rasterfiles (not run length encoded).
- X.SH EXAMPLE
- X.PP
- XTo convert a mapped color image in FBM format to a Sun
- Xformat grayscale image:
- X.sp
- X % clr2gray -S < foo.fbm > foo.8bit
- X.sp
- XTo extract the red color plane from an image and write the result in
- XFBM format:
- X.sp
- X % clr2gray -r1 -F < foo.fbm > red.fbm
- X.sp
- XNote that since the green and blue weights were not specified, they
- Xdefaulted to 0, and the result is that only the red plane is used.
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1853 -ne `wc -c <'clr2gray.1'`; then
- echo shar: \"'clr2gray.1'\" unpacked with wrong size!
- fi
- # end of 'clr2gray.1'
- fi
- if test -f 'fbclean.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbclean.1'\"
- else
- echo shar: Extracting \"'fbclean.1'\" \(1918 characters\)
- sed "s/^X//" >'fbclean.1' <<'END_OF_FILE'
- X.TH FBCLEAN 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbclean \- flip isolated pixels in a 1bit image
- X.SH SYNOPSIS
- X.nf
- Xfbclean [ -b<cleaner> -t<threshhold> -n<nbr> ] [ -<type> ] < bitmap > bitmap
- X.fi
- X.SH DESCRIPTION
- X.PP
- XFlips isolated pixels (this can be used to clean up "snow" in some
- Xhalftoned images. Can also convert a grayscale image to bitmap by
- Xtheshholding before the cleaning is done.
- X.SH OPTIONS
- X.TP
- X.B -b
- X.I cleaner
- Xoption, specifies the minimum number of "nearby" like pixels to remain
- Xthe same color.
- X.TP
- X.B -n
- X.I neighbors,
- Xthe size of the neighborhood. To be "nearby" means to be located in an
- XNxN square around the target pixel.
- X.TP
- X.B -t
- X.I threshhold
- Xcommand, used to halftone the image before cleaning. The default is no
- Xtheshholding.
- X.TP
- X.BR -B
- X.I face
- Xformat, as used by Bennet Yee's
- X.I face
- Xprogram at CMU.
- X.TP
- X.BR -F
- X.I FBM,
- Xformat (by default, the default). You are guaranteed not
- Xto lose information by specifying FBM as the default.
- X.TP
- X.BR -G
- X.I GIF,
- XCompuserve GIF format.
- X.TP
- X.BR -I
- X.I IFF
- Xformat, interleaved bitmaps (ILBM), used by Amigas.
- X.TP
- X.BR -P
- X.I PBM,
- XJef Poskanzer's bitmap format.
- X.TP
- X.BR -S
- X.I sun,
- XSun rasterfiles (not run length encoded).
- X.PP
- X.SH EXAMPLE
- X.PP
- XTo take a bitmap and clean up pixels with fewer than 2 like neighbors
- Xin the surrounding 5x5 square, outputing s Sun rasterfile:
- X.sp
- X % fbclean -S -b2 -n5 < foo.1bit > bar.1bit
- X.sp
- XTo do the same thing to a grayscale file (threshholding first with 128):
- X.sp
- X % fbclean -S -b2 -n5 -t128 < foo.1bit > bar.1bit
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1918 -ne `wc -c <'fbclean.1'`; then
- echo shar: \"'fbclean.1'\" unpacked with wrong size!
- fi
- # end of 'fbclean.1'
- fi
- if test -f 'fbedge.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbedge.1'\"
- else
- echo shar: Extracting \"'fbedge.1'\" \(1547 characters\)
- sed "s/^X//" >'fbedge.1' <<'END_OF_FILE'
- X.TH FBEDGE 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbedge \- compute the derivative of an image (edge detection)
- X.SH SYNOPSIS
- X.nf
- Xfbedge [ -t<threshhold> ] [ -<type> ] < bitmap > bitmap
- X.fi
- X.SH DESCRIPTION
- X.PP
- XComputes a halftoned image composed of edges in the original. Edge
- Xdetection is done by digital Laplacian.
- X.SO OPTIONS
- X.TP
- X.B -t<num>
- X.I threshhold
- Xargument, specifies a threshhold for detecting edges. Pixels with
- Xfirst derivatives greater than the threshhold will be black, and others
- Xwill be white.
- X.TP
- X.BR -B
- X.I face
- Xformat, as used by Bennet Yee's
- X.I face
- Xprogram at CMU.
- X.TP
- X.BR -F
- X.I FBM,
- Xformat (by default, the default). You are guaranteed not
- Xto lose information by specifying FBM as the default.
- X.TP
- X.BR -G
- X.I GIF,
- XCompuserve GIF format.
- X.TP
- X.BR -I
- X.I IFF
- Xformat, interleaved bitmaps (ILBM), used by Amigas.
- X.TP
- X.BR -P
- X.I PBM,
- XJef Poskanzer's bitmap format.
- X.TP
- X.BR -S
- X.I sun,
- XSun rasterfiles (not run length encoded).
- X.SH EXAMPLE
- X.PP
- XTo produce an image of regions in a grayscale image where the first
- Xderivative is greater than 10, and output the result as a Sun
- Xrasterfile:
- X.sp
- X % fbedge -t10 -S < foo.gray > foo.1bit
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1547 -ne `wc -c <'fbedge.1'`; then
- echo shar: \"'fbedge.1'\" unpacked with wrong size!
- fi
- # end of 'fbedge.1'
- fi
- if test -f 'fbham.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbham.1'\"
- else
- echo shar: Extracting \"'fbham.1'\" \(1502 characters\)
- sed "s/^X//" >'fbham.1' <<'END_OF_FILE'
- X.TH FBHAM 1 20-May-89
- X.CM 3
- X.SH NAME
- Xfbham \- Convert 24 bit RGB color to Amiga HAM mode
- X.SH SYNOPSIS
- X.nf
- Xfbham < image.cbm > image.ham
- X.fi
- X.SH DESCRIPTION
- X.PP
- X.I fbham
- Xreads a 24bit color image and produces Amiga HAM mode. The output is
- Xan IFF ILBM file with 6 planes. The first two bits of a pixel specify
- Xan operation and the last four bits specify a color. The operations
- Xare:
- X.sp
- X.nf
- X 00 Use the 4bit value as in index into the color table.
- X 01 Copy the RGB values for the pixel to the immediate left,
- X using the 4bit value to change the intensity of the red
- X gun. The new red value will be the 4bit value shifted
- X left 4 bits (so 0,1,...15 maps to 0,16,...240).
- X 02 Same as above, but change green gun.
- X 03 Same as above, but change blue gun.
- X.fi
- X.sp
- XIf your input image is not 24 bits, use unmap(1) to convert almost any
- Xcolor image to 24 bits.
- X.SH OPTIONS
- X.PP
- XNone.
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XReally lousy choice for initial colormap. Should use the
- Xbuild_colormap routine from fbquant.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X20-May-89 Michael L. Mauldin at Carnegie Mellon University
- XWrote this man page. Software by C. Harald Koch (chk) at DCIEM Toronto
- X<chk@ben.dciem.dnd.ca>, based on ray2.c from DBW_Render, Copyright 1987
- XDavid B. Wecker.
- END_OF_FILE
- if test 1502 -ne `wc -c <'fbham.1'`; then
- echo shar: \"'fbham.1'\" unpacked with wrong size!
- fi
- # end of 'fbham.1'
- fi
- if test -f 'fbhist.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbhist.1'\"
- else
- echo shar: Extracting \"'fbhist.1'\" \(1561 characters\)
- sed "s/^X//" >'fbhist.1' <<'END_OF_FILE'
- X.TH FBHIST 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbhist \- compute histogram of an image
- X.SH SYNOPSIS
- X.nf
- Xfbhist [ -h ] < image
- X.fi
- X.SH DESCRIPTION
- X.PP
- XPrints some of the header info and displays the maximum, minimum, mean,
- Xand standard deviation of the gray levels. If given any argument it
- Xalso dumps the histogram. Works correctly for black and white images.
- XOn color images it will work, but the results for images with odd
- Xwidths will include the zeroes used to pad to an even byte boundary.
- X.sp
- X.TP
- X.B -h
- X.I histogram
- Xargument requests printing the actual counts for all gray levels used
- Xby the image.
- X.SH EXAMPLE
- X.PP
- XTo compute the mean and range of an image:
- X.sp
- X.nf
- X % fbhist < tiger.fbm
- X Tiger [400x640 8 bits 0.833 aspect ratio]
- X Mean 88.83 +- 40.94, range 21..201
- X.fi
- X.sp
- XThe output shows that the image is title 'Tiger', and that it is 400
- Xpixels wide and 640 pixels tall. The pixels are 8 bits deep, and the
- Ximage has a 0.833 aspect ratio (it is a rotated version of a 1.2 to 1
- Ximage). The average density is 88.83 with a standard deviation of
- X40.94. Pixels range from values 21 (darkest) to 201 (lightest) out of
- Xa 0..255 range.
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1561 -ne `wc -c <'fbhist.1'`; then
- echo shar: \"'fbhist.1'\" unpacked with wrong size!
- fi
- # end of 'fbhist.1'
- fi
- if test -f 'fbinfo.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbinfo.1'\"
- else
- echo shar: Extracting \"'fbinfo.1'\" \(966 characters\)
- sed "s/^X//" >'fbinfo.1' <<'END_OF_FILE'
- X.TH FBINFO 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbinfo \- dump the contents of an FBM image header
- X.SH SYNOPSIS
- X.nf
- Xfbinfo files...
- X.fi
- X.SH DESCRIPTION
- X.PP
- XDump the header information of one or more files. If the file name
- Xends in ".Z", the file is uncompressed before the header is read.
- XNote that compressed files that don't have ".Z" at the end won't work.
- X.SH EXAMPLE
- X.PP
- Xfbinfo *.fbm
- X.PP
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XShould be expanded to work for all readable image formats. As a work
- Xaround you can use fbhist(1) which does read all formats (using
- Xsignificantly more time and cpu).
- X
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 966 -ne `wc -c <'fbinfo.1'`; then
- echo shar: \"'fbinfo.1'\" unpacked with wrong size!
- fi
- # end of 'fbinfo.1'
- fi
- if test -f 'fbm2pod.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbm2pod.1'\"
- else
- echo shar: Extracting \"'fbm2pod.1'\" \(1122 characters\)
- sed "s/^X//" >'fbm2pod.1' <<'END_OF_FILE'
- X.TH FBM2POD 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbm2pod \- convert grayscale to Diablo graphics
- X.SH SYNOPSIS
- X.nf
- Xfbm2pod [ -fbc<parm> ] [-s<sharpen> ] [ size ] < 8bit > pod
- X.fi
- X.SH DESCRIPTION
- X.PP
- XEquivalent to
- X.I fbhalf,
- Xbut generates a file for the Diablo printer at 30 dpi horizontal and 24
- Xdpi vertical.
- X.SH EXAMPLE
- X.PP
- XGiven a grayscale image, reproduce it on a Diablo printer. Use blue
- Xnoise dithering and size the output for about 25,000 pixels (around 5x7
- Xinches on a Diablo). Use sharpening with beta=10 to enhance edges:
- X.sp
- X % fbm2pod -s10 25000 < foo.8bit > foo.pod
- X.sp
- XAt CMU, the podtype(1) command is used to send files to Diablo printers.
- X.SH SEE ALSO
- Xfbhalf(1) for options,
- Xpodtype(1) for printing on Diablos,
- Xfbm(1) for general discussion,
- Xpbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1122 -ne `wc -c <'fbm2pod.1'`; then
- echo shar: \"'fbm2pod.1'\" unpacked with wrong size!
- fi
- # end of 'fbm2pod.1'
- fi
- if test -f 'fbm2tga.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbm2tga.c'\"
- else
- echo shar: Extracting \"'fbm2tga.c'\" \(1295 characters\)
- sed "s/^X//" >'fbm2tga.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * fbm2tga.c: FBM Library 0.93 (Beta test) 03-May-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * fbm2tga.c: convert a bitmap to Targa format
- X *
- X * USAGE
- X * % fbm2tga [ image ] > image.tga
- X *
- X * EDITLOG
- X * LastEditDate = Wed May 3 21:50:43 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/fbm2tga.c
- X *
- X * HISTORY
- X * 03-May-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.93) mlm@cs.cmu.edu
- X *****************************************************************/
- X
- X# include <stdio.h>
- X# include <math.h>
- X# include "fbm.h"
- X
- X# define USAGE\
- X"Usage: fbm2tga [ image ] > image.tga"
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM fbm2tga.c <0.93> 03-May-89 (C) 1989 by Michael Mauldin$";
- X#endif
- X
- Xmain (argc,argv)
- Xint argc; char *argv[];
- X{ FBM image;
- X
- X /* Clear pointers */
- X image.cm = image.bm = (unsigned char *) NULL;
- X
- X /* Read anything, write targa */
- X if (read_bitmap (&image, (argc > 0) ? *argv : (char *) NULL) &&
- X write_tga (&image, stdout))
- X {
- X exit (0);
- X }
- X else
- X { exit (1); }
- X}
- END_OF_FILE
- if test 1295 -ne `wc -c <'fbm2tga.c'`; then
- echo shar: \"'fbm2tga.c'\" unpacked with wrong size!
- fi
- # end of 'fbm2tga.c'
- fi
- if test -f 'fbmask.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbmask.1'\"
- else
- echo shar: Extracting \"'fbmask.1'\" \(1076 characters\)
- sed "s/^X//" >'fbmask.1' <<'END_OF_FILE'
- X.TH FBMASK 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbmask \- mask a rectangle in a grayscale file
- X.SH SYNOPSIS
- X.nf
- Xfbmask [ -<type> ] x0 y0 x1 y1 value < 8bit > 8bit
- X.fi
- X.SH DESCRIPTION
- X.PP
- XPaints the specified gray value
- X.I val
- Xin a rectangle starting at
- X.I x
- Xand
- X.I y
- Xwith the given
- X.I width
- Xand
- X.I height.
- X.PP
- X.SH EXAMPLE
- XTo put a 50 pixel wide black border around a 640 by 480 pixel grayscale
- Ximage, you could use the following pipeline (which outputs a Sun
- Xrasterfile):
- X.sp
- X.nf
- X % fbmask 0 0 50 480 0 < foo.8bit |
- X fbmask 0 0 640 50 0 < foo.8bit |
- X fbmask 0 430 640 480 0 < foo.8bit |
- X fbmask 590 0 640 480 0 < foo.8bit > bar.8bit
- X.fi
- X.sp
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1076 -ne `wc -c <'fbmask.1'`; then
- echo shar: \"'fbmask.1'\" unpacked with wrong size!
- fi
- # end of 'fbmask.1'
- fi
- if test -f 'fbnorm.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbnorm.1'\"
- else
- echo shar: Extracting \"'fbnorm.1'\" \(1749 characters\)
- sed "s/^X//" >'fbnorm.1' <<'END_OF_FILE'
- X.TH FBNORM 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbnorm \- normalize and adjust grayscale or color image
- X.SH SYNOPSIS
- X.nf
- Xfbnorm [ -b<val> -w<val> ] [ -<type> ] < image > image
- X.fi
- X.SH DESCRIPTION
- X.PP
- XExtends the contrast range to a full 0 to 255. The arguments
- X.B -b
- Xand
- X.B -w
- Xgiven the percentage of the darkest pixels to map to black and lightest
- Xpixels to map to white.
- X.sp
- XFor color images the default is to discard 0.5% each of the darkest and
- Xlightest pixels. Increasing the contrast beyond that may result in
- Xsignificant color artifacts (because the color values will be partially
- Xclipped).
- X.SH OPTIONS
- X.TP
- X.BR -b<num>, -w<num>
- X.I percentage black, white
- Xpixels to map to 0, 255. The default for grayscale images is to
- X"discard" 2 percent of the black pixels and 1 percent of the white
- Xpixels. For color images both values default to 0.5 percent.
- X.sp
- XAn alternate form is to specify two integers, which will then be
- Xlinearly mapped to 0 and 255.
- X.SH EXAMPLE
- X.PP
- XTo normalize a grayscale FBM image using defaults:
- X.sp
- X % fbnorm < foo.fbm > bar.fbm
- X.sp
- XTo increase contrast by discarding 10 percent of the black pixels and 5
- Xpercent of the white pixels:
- X.sp
- X % fbnorm -b10 -w5 < foo.fbm > bar.fbm
- X.sp
- XOr, if you know that you want 34 to map to 0 and 197 to map to 255, you
- Xcan just type:
- X.sp
- X % fbnorm 34 197 < foo.fbm > bar.fbm
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1749 -ne `wc -c <'fbnorm.1'`; then
- echo shar: \"'fbnorm.1'\" unpacked with wrong size!
- fi
- # end of 'fbnorm.1'
- fi
- if test -f 'fbps.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbps.1'\"
- else
- echo shar: Extracting \"'fbps.1'\" \(1658 characters\)
- sed "s/^X//" >'fbps.1' <<'END_OF_FILE'
- X.TH FBPS 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbps \- convert grayscale to postscript
- X.SH SYNOPSIS
- X.nf
- Xfbps [-tT] [-pP] [ -s ] [ -w<width> ] < grayscale > foo.PS
- X.fi
- X.SH DESCRIPTION
- X.PP
- XConverts an fbm format file into a postscript file for printing. The
- X.B -s
- Xflag generates a file suitable for including in a postscript document
- X(for example, Scribe or LaTex output) with no document structuring,
- Xtitles, or trailing "showpage". By default, the image's title is
- Xprinted in a large font centered over the image, and a small banner
- Xgiving the size is printed under the lower right corner.
- XThe
- X.B -T
- Xand
- X.B -P
- Xarguments disable the title and print size options.
- X.sp
- XThere really ought to be an option to print the credits instead of the
- Xsize, but I haven't done it yet.
- X.SH EXAMPLE
- X.PP
- XTo convert a Sun 8bit grayscale rasterfile to a full page postscript file:
- X.sp
- X % fbps < foo.8bit > foo.PS
- X.sp
- XTo convert a color GIF file to a 3 inch wide grayscale postscript file
- Xfor inclusion in a Scribe or TeX document:
- X.sp
- X % clr2gray < foo.gif | fbps -s -w3.0 > foo.PS
- X.sp
- XTo print a 1 bit deep Sun rasterfile in postscript, use fbcat and
- Xpbm2ps:
- X.sp
- X % fbcat -P < foo.1bit | pbm2ps > foo.PS
- X.SH SEE ALSO
- Xfbcat(1) and pbm2ps(1) for converting 1 bit deep files to PostScript.
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1658 -ne `wc -c <'fbps.1'`; then
- echo shar: \"'fbps.1'\" unpacked with wrong size!
- fi
- # end of 'fbps.1'
- fi
- if test -f 'fbrot.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbrot.1'\"
- else
- echo shar: Extracting \"'fbrot.1'\" \(1311 characters\)
- sed "s/^X//" >'fbrot.1' <<'END_OF_FILE'
- X.TH FBROT 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbrot \- rotate an image 90, 180 or 270 degrees
- X.SH SYNOPSIS
- X.nf
- Xfbrot [ -<type> ] [ -90 | -180 | -270 ] < bitmap > bitmap
- X.fi
- X.SH DESCRIPTION
- X.PP
- XRotate an image in increments of 90 degrees.
- XThe direction is clockwise.
- XThe default is 90 degrees clockwise.
- X.SH OPTIONS
- X.TP
- X.B -90, -180, -270
- Xamount of clockwise rotation inb degrees.
- X.TP
- X.BR -B
- X.I face
- Xformat, as used by Bennet Yee's
- X.I face
- Xprogram at CMU.
- X.TP
- X.BR -F
- X.I FBM,
- Xformat (by default, the default). You are guaranteed not
- Xto lose information by specifying FBM as the default.
- X.TP
- X.BR -G
- X.I GIF,
- XCompuserve GIF format.
- X.TP
- X.BR -I
- X.I IFF
- Xformat, interleaved bitmaps (ILBM), used by Amigas.
- X.TP
- X.BR -P
- X.I PBM,
- XJef Poskanzer's bitmap format.
- X.TP
- X.BR -S
- X.I sun,
- XSun rasterfiles (not run length encoded).
- X.SH EXAMPLE
- X.PP
- XRotate a Sun rasterfile 90 degrees:
- X.sp
- X % fbrot -90 -S < foo.1bit > bar.1bit
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1311 -ne `wc -c <'fbrot.1'`; then
- echo shar: \"'fbrot.1'\" unpacked with wrong size!
- fi
- # end of 'fbrot.1'
- fi
- if test -f 'fbsharp.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fbsharp.1'\"
- else
- echo shar: Extracting \"'fbsharp.1'\" \(1795 characters\)
- sed "s/^X//" >'fbsharp.1' <<'END_OF_FILE'
- X.TH FBSHARP 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xfbsharp \- edge enhance a grayscale or color image
- X.SH SYNOPSIS
- X.nf
- Xfbsharp [ -<type> ] beta < image > image
- X.fi
- X.SH DESCRIPTION
- X.PP
- XUses a digital Laplacian filter to enhance the edges. Typical values
- Xof beta run from 1 to 20. The default is 2. This command works for
- Xcolor images, but values of sharpening higher than 3 or 4 tend to create
- Xlots of noisy artifiacts in the image.
- X.sp
- XThe
- X.I fbhalf
- Xcommand also calls the sharpening code implicitly if the
- X.I -s
- Xoptional is passed to
- X.I fbhalf.
- X.SH OPTIONS
- X.TP
- X.BR <beta>
- Xspecifies the amount of sharpening. Typical values run from 1 to 10,
- Xhigher values can cause snow.
- X.TP
- X.BR -B
- X.I face
- Xformat, as used by Bennet Yee's
- X.I face
- Xprogram at CMU.
- X.TP
- X.BR -F
- X.I FBM,
- Xformat (by default, the default). You are guaranteed not
- Xto lose information by specifying FBM as the default.
- X.TP
- X.BR -G
- X.I GIF,
- XCompuserve GIF format.
- X.TP
- X.BR -I
- X.I IFF
- Xformat, interleaved bitmaps (ILBM), used by Amigas.
- X.TP
- X.BR -P
- X.I PBM,
- XJef Poskanzer's bitmap format.
- X.TP
- X.BR -S
- X.I sun,
- XSun rasterfiles (not run length encoded).
- X.SH EXAMPLE
- X.PP
- XSince the -s option of fbahlf(1) exists, you will probably only run
- Xfbsharp on color images, which tolerate less sharpening. Here we
- Xsharpen an FBM format color image with beta=3 and quantize it for
- Xdisplay on a Sun:
- X.sp
- X % fbsharp 3.0 < foo.fbm | fbquant -S > foo.clr
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1795 -ne `wc -c <'fbsharp.1'`; then
- echo shar: \"'fbsharp.1'\" unpacked with wrong size!
- fi
- # end of 'fbsharp.1'
- fi
- if test -f 'flalfb.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'flalfb.c'\"
- else
- echo shar: Extracting \"'flalfb.c'\" \(2086 characters\)
- sed "s/^X//" >'flalfb.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * flalfb.c: FBM Library 0.9 (Beta test) 07-Mar-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * flalfb.c: Fuzzy bitmap allocation
- X *
- X * CONTENTS
- X * alloc_fbm (image)
- X * free_fbm (image)
- X *
- X * EDITLOG
- X * LastEditDate = Tue Mar 7 19:56:45 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/flalfb.c
- X *
- X * HISTORY
- X * 07-Mar-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.9) mlm@cs.cmu.edu
- X *
- X * 12-Nov-88 Michael Mauldin (mlm) at Carnegie-Mellon University
- X * Created.
- X *****************************************************************/
- X
- X# include <stdio.h>
- X# include <math.h>
- X# include <ctype.h>
- X# include "fbm.h"
- X
- X/****************************************************************
- X * alloc_fbm: Allocate enough bytes for the bitmap and colormap
- X * of an image where the header has already been filled in.
- X ****************************************************************/
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM flalfb.c <0.9> 07-Mar-89 (C) 1989 by Michael Mauldin$";
- X#endif
- X
- Xalloc_fbm (image)
- XFBM *image;
- X{ unsigned bmsize, cmsize;
- X
- X if (! free_fbm (image)) return (0);
- X
- X /* Calculate bytes needed */
- X bmsize = (image->hdr.planes * image->hdr.plnlen);
- X cmsize = image->hdr.clrlen;
- X
- X if (! (image->bm = (unsigned char *) malloc (bmsize)) ||
- X (cmsize && ! (image->cm = (unsigned char *) malloc (cmsize))))
- X { perror ("alloc_fbm"); exit (1); }
- X
- X return (1);
- X}
- X
- X/****************************************************************
- X * free_fbm: Free the storage allocate by alloc_fbm
- X ****************************************************************/
- X
- Xfree_fbm (image)
- XFBM *image;
- X{
- X if (image->bm)
- X { free ((char *) image->bm); image->bm = (unsigned char *) NULL; }
- X
- X if (image->cm)
- X { free ((char *) image->cm); image->cm = (unsigned char *) NULL; }
- X
- X return (1);
- X}
- END_OF_FILE
- if test 2086 -ne `wc -c <'flalfb.c'`; then
- echo shar: \"'flalfb.c'\" unpacked with wrong size!
- fi
- # end of 'flalfb.c'
- fi
- if test -f 'flpic.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'flpic.c'\"
- else
- echo shar: Extracting \"'flpic.c'\" \(1082 characters\)
- sed "s/^X//" >'flpic.c' <<'END_OF_FILE'
- X
- X#include <stdio.h>
- X#include "fbm.h"
- X/*
- X * read_pic(image, rfile, mstr, mlen)
- X *
- X */
- X
- Xread_pic(image, rfile, mstr, mlen)
- XFBM *image;
- XFILE *rfile;
- Xchar *mstr;
- Xint mlen;
- X{
- Xunsigned int Width, Height;
- Xint i,j;
- Xunsigned char *Red, *Grn, *Blu;
- X
- Xfscanf(rfile,"%d %d\n",&Height,&Width);
- X
- X/* Create output image header */
- X image->hdr.rows = Height;
- X image->hdr.cols = Width;
- X /* If this is odd number of bytes, add one */
- X if ((image->hdr.cols & 1) != 0) image->hdr.cols++;
- X image->hdr.planes = 3;
- X image->hdr.bits = 8;
- X image->hdr.physbits = 8;
- X image->hdr.rowlen = image->hdr.cols;
- X image->hdr.plnlen = image->hdr.rows * image->hdr.cols;
- X image->hdr.clrlen = 0;
- X image->hdr.aspect = 1.0;
- X image->hdr.title[0] = '\0';
- X image->hdr.credits[0] = '\0';
- X
- X/* Get the Image */
- X alloc_fbm(image);
- X
- X Red = image->bm;
- X Grn = Red + image->hdr.plnlen;
- X Blu = Grn + image->hdr.plnlen;
- X for (i=0; i< Height; i++)
- X {
- X for (j=0; j< Width; j++)
- X {
- X fread(Red++,1,1,rfile);
- X fread(Grn++,1,1,rfile);
- X fread(Blu++,1,1,rfile);
- X }
- X if (Width != image->hdr.cols)
- X {
- X Red++;Grn++;Blu++;
- X }
- X }
- X}
- END_OF_FILE
- if test 1082 -ne `wc -c <'flpic.c'`; then
- echo shar: \"'flpic.c'\" unpacked with wrong size!
- fi
- # end of 'flpic.c'
- fi
- if test -f 'gray2clr.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'gray2clr.1'\"
- else
- echo shar: Extracting \"'gray2clr.1'\" \(1559 characters\)
- sed "s/^X//" >'gray2clr.1' <<'END_OF_FILE'
- X.TH GRAY2CLR 1 07-Apr-89
- X.CM 3
- X.SH NAME
- Xgray2clr, unmap \- add a colormap to a grayscale image, unmap a color image
- X.SH SYNOPSIS
- X.nf
- Xgray2clr [ -<type> ] [ -u ] < gray > color or
- X.br
- Xunmap [ -<type> ] < gray > color
- X.fi
- X.SH DESCRIPTION
- X.PP
- XAdds a colormap to an 8bit grayscale image, allowing it to be displayed
- Xon a frame buffer. The image will still be black and white, of course.
- X.sp
- XIf invoked as
- X.I unmap,
- Xor with the
- X.B -u
- Xoption, the output is given as RGB values instead of mapped color.
- XThis routine can be used to convert mapped color to unmapped color as
- Xwell. This must be done before
- X.I fbext
- Xis used to resize a mapped color image. Then the result can be
- Xremapped using
- X.I fbquant.
- X.SH OPTIONS
- X.TP
- X.BR -u
- X.I unmap,
- Xmakes the output a 3 plane image, instead of a mapped imsage.
- XThis must be done before the image can be resized (with fbext(1)) or
- Xquantized (with fbquant(1)).
- X.SH EXAMPLE
- XAdd a colormap to a grayscale file for viewing on a frame buffer:
- X.sp
- X % gray2clr -S < foo.8bit > foo.clr
- X.sp
- XConvert a mapped color image to unmapped and then adjust the aspect
- Xratio:
- X.sp
- X % gray2clr -u < foo.gif | fbext -a1 > foo.fbm
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Apr-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.91) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1559 -ne `wc -c <'gray2clr.1'`; then
- echo shar: \"'gray2clr.1'\" unpacked with wrong size!
- fi
- # end of 'gray2clr.1'
- fi
- if test -f 'idiff.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'idiff.1'\"
- else
- echo shar: Extracting \"'idiff.1'\" \(1082 characters\)
- sed "s/^X//" >'idiff.1' <<'END_OF_FILE'
- X.TH IDIFF 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xidiff, udiff \- convert byte stream to difference stream (b[n]-[bn-1])
- X.SH SYNOPSIS
- X.nf
- Xidiff < original > delta
- Xudiff < delta > original
- X.fi
- X.SH DESCRIPTION
- X.PP
- XUsed as a preprocessor for compression algorithms. Some images
- X(especially grayscale and RGB) compress better when the compression is
- Xperformed on the difference between adjacent bytes, rather than the
- Xbytes themselves (savings up to 30% are common).
- X.sp
- XUse
- X.I idiff
- Xto convert the original to a delta file, and
- X.I udiff
- Xto restore.
- X.sp
- XThere are no magic numbers or headers, so there is no good way to tell
- Xwhether a file has been "idiffed" by examining the contents.
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1082 -ne `wc -c <'idiff.1'`; then
- echo shar: \"'idiff.1'\" unpacked with wrong size!
- fi
- # end of 'idiff.1'
- fi
- if test -f 'idiff.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'idiff.c'\"
- else
- echo shar: Extracting \"'idiff.c'\" \(1342 characters\)
- sed "s/^X//" >'idiff.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * idiff.c: FBM Library 0.9 (Beta test) 07-Mar-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * idiff.c:
- X *
- X * USAGE
- X * % idiff [ flags ] arguments
- X *
- X * EDITLOG
- X * LastEditDate = Tue Mar 7 17:23:58 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/idiff.c
- X *
- X * HISTORY
- X * 07-Mar-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.9) mlm@cs.cmu.edu
- X *
- X * 18-Aug-88 Michael Mauldin (mlm) at Carnegie-Mellon University
- X * Created.
- X *****************************************************************/
- X
- X# include <stdio.h>
- X
- X# define USAGE \
- X"Usage: idiff < original > delta\n udiff < delta > original"
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM idiff.c <0.9> 07-Mar-89 (C) 1989 by Michael Mauldin$";
- X#endif
- X
- Xmain (argc, argv)
- Xchar *argv[];
- X{ register int ch, lastch=0;
- X
- X if (argc > 1 || !strcmp (argv[0] + strlen (argv[0]) - 5, "udiff"))
- X { while ((ch = getchar ()) != EOF)
- X { putchar (lastch = ((ch+lastch) & 255)); }
- X }
- X else
- X { while ((ch = getchar ()) != EOF)
- X { putchar ((ch-lastch) & 255);
- X lastch = ch;
- X }
- X }
- X}
- END_OF_FILE
- if test 1342 -ne `wc -c <'idiff.c'`; then
- echo shar: \"'idiff.c'\" unpacked with wrong size!
- fi
- # end of 'idiff.c'
- fi
- if test -f 'pbm2ps.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pbm2ps.1'\"
- else
- echo shar: Extracting \"'pbm2ps.1'\" \(1740 characters\)
- sed "s/^X//" >'pbm2ps.1' <<'END_OF_FILE'
- X.TH PBM2PS 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xpbm2ps \- convert a PBM file to postscript (option for Scribe files)
- X.SH SYNOPSIS
- X.nf
- Xpbm2ps [ -s ] [ scale ] < pbm > postscript
- X.fi
- X.SH DESCRIPTION
- X.PP
- XThis is an enhanced version of Poskanzer's
- X.I pbmtops
- Xcommand that includes an option to generate "bare" files for including
- Xin documents (the
- X.B -s
- Xor scribe option). It also prints the title at the top, if there is
- Xone attached to the image.
- X.sp
- XThe
- X.I scale
- Xif given must be an integer number which indicates how many output dots
- X(at 300 dpi) are used to render a single pixel. The default is 1.
- X.SH EXAMPLE
- X.PP
- XGiven a 480 by 600 pixel bitmap, create a postscript file with the
- Xlargest integral scaling factor that fits on a regular page:
- X.sp
- X % pbm2ps < foo.1bit > foo.PS
- X.sp
- XGiven the same bitmap, create a postscript file
- Xwith each input pixel represented by a 2x2
- Xblock of 300 dpi pixels on the output page (scaling factor 2):
- X.sp
- X % pbm2ps 2 < foo.1bit > foo.PS
- X.sp
- XNote that the resulting image will be 3.2 inches wide and 4 inches tall
- X(pixels * scale / 300 dpi).
- X.sp
- XCreate the same image, but don't include document structuring commands
- X(this allows the file to be included in other documents by formatters
- Xsuch as Scribe and TeX).
- X.sp
- X % pbm2ps -s 2 < foo.1bit > foo.PS
- X.SH SEE ALSO
- Xfbm2ps(1) for converting grayscale files.
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1740 -ne `wc -c <'pbm2ps.1'`; then
- echo shar: \"'pbm2ps.1'\" unpacked with wrong size!
- fi
- # end of 'pbm2ps.1'
- fi
- if test -f 'pbmtitle.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pbmtitle.1'\"
- else
- echo shar: Extracting \"'pbmtitle.1'\" \(703 characters\)
- sed "s/^X//" >'pbmtitle.1' <<'END_OF_FILE'
- X.TH PBMTITLE 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xpbmtitle \- add a title to PBM files (titles used in FBM files)
- X.SH SYNOPSIS
- X.nf
- Xpbmtitle 'new title' < pbm > pbm
- X.fi
- X.SH DESCRIPTION
- X.PP
- XAdds or replaces the title of a pbm file.
- X.SH EXAMPLE
- X.PP
- X.nf
- X pbmtitle -t'New title' < foo.pbm > bar.pbm
- X.fi
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 703 -ne `wc -c <'pbmtitle.1'`; then
- echo shar: \"'pbmtitle.1'\" unpacked with wrong size!
- fi
- # end of 'pbmtitle.1'
- fi
- if test -f 'pbmtitle.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pbmtitle.c'\"
- else
- echo shar: Extracting \"'pbmtitle.c'\" \(1429 characters\)
- sed "s/^X//" >'pbmtitle.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * pbmtitle.c: FBM Library 0.9 (Beta test) 07-Mar-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * pbmtitle.c: Add a title to a pbm bitmap
- X *
- X * USAGE
- X * % pbmtitle [ flags ] arguments
- X *
- X * EDITLOG
- X * LastEditDate = Tue Mar 7 19:57:46 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/pbmtitle.c
- X *
- X * HISTORY
- X * 07-Mar-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.9) mlm@cs.cmu.edu
- X *
- X * 23-Sep-88 Michael Mauldin (mlm) at Carnegie-Mellon University
- X * Created.
- X *****************************************************************/
- X
- X# include <stdio.h>
- X
- X# define USAGE "Usage: pbmtitle 'new title' < pbm > pbm"
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM pbmtitle.c <0.9> 07-Mar-89 (C) 1989 by Michael Mauldin$";
- X#endif
- X
- Xmain (argc, argv)
- Xchar *argv[];
- X{ char buf[BUFSIZ];
- X int lines=0;
- X
- X if (argc != 2 || argv[1][0] == '-')
- X { fprintf (stderr, "%s\n", USAGE);
- X exit (1);
- X }
- X
- X while (fgets (buf, BUFSIZ, stdin))
- X { if (buf[0] != '#') { printf ("%s", buf); lines++; }
- X else if (strncmp (buf, "# Title: ", 9)) printf ("%s", buf);
- X
- X if (lines == 2) printf ("# Title: %s\n", argv[1]);
- X }
- X
- X exit (0);
- X}
- END_OF_FILE
- if test 1429 -ne `wc -c <'pbmtitle.c'`; then
- echo shar: \"'pbmtitle.c'\" unpacked with wrong size!
- fi
- # end of 'pbmtitle.c'
- fi
- if test -f 'pic2fbm.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'pic2fbm.c'\"
- else
- echo shar: Extracting \"'pic2fbm.c'\" \(1377 characters\)
- sed "s/^X//" >'pic2fbm.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * pic2fbm.c: FBM Library 0.93 (Beta test) 03-May-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * pic2fbm.c: convert a bitmap to Targa format
- X *
- X * USAGE
- X * % pic2fbm [ image.pic ] > image.fbm
- X *
- X * EDITLOG
- X * LastEditDate = Wed May 3 21:50:43 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/pic2fbm.c
- X *
- X * HISTORY
- X * 03-May-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.93) mlm@cs.cmu.edu
- X *****************************************************************/
- X
- X# include <stdio.h>
- X# include <math.h>
- X# include "fbm.h"
- X
- X# define USAGE\
- X"Usage: pic2fbm [ image.pic ] > image.fbm"
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM pic2fbm.c <0.93> 03-May-89 (C) 1989 by Michael Mauldin$";
- X#endif
- Xmain(argc,argv)
- Xint argc; char *argv[];
- X{ FBM image;
- X
- X /* Clear pointers */
- X image.cm = image.bm = (unsigned char *) NULL;
- X
- X /* Open input if given */
- X if (argc > 1)
- X { if (freopen (argv[1], "r", stdin) != stdin)
- X { perror (argv[1]);
- X exit(1);
- X }
- X }
- X
- X if (read_pic (&image, stdin, "", 0) &&
- X write_fbm (&image, stdout))
- X { exit(0); }
- X else
- X { exit (1); }
- X}
- END_OF_FILE
- if test 1377 -ne `wc -c <'pic2fbm.c'`; then
- echo shar: \"'pic2fbm.c'\" unpacked with wrong size!
- fi
- # end of 'pic2fbm.c'
- fi
- if test -f 'qrt2fbm.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'qrt2fbm.1'\"
- else
- echo shar: Extracting \"'qrt2fbm.1'\" \(1095 characters\)
- sed "s/^X//" >'qrt2fbm.1' <<'END_OF_FILE'
- X.TH QRT2FBM 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xqrt2fbm \- convert QRT image files to FBM format (Output from the QRT ray tracer)
- X.SH SYNOPSIS
- X.nf
- Xqrt2fbm [ -t'title' -c'credits' ] < rawfile > fbm
- X.fi
- X.SH DESCRIPTION
- X.PP
- XConverts a file in the format ouput by the QRT ray tracing package to
- Xfbm format.
- X.SH OPTIONS
- X.TP
- X.BR -t'title'
- X.I title,
- Xspecify a character string (up to 80 characters) to describe the image.
- XThe default is no title.
- X.TP
- X.BR -c'credits'
- X.I credits or subtitle,
- Xspecify a second character string (up to 80 characters) to describe the
- Ximage. The default is no credit string.
- X.SH EXAMPLE
- X.PP
- X qrt2fbm -t'Tiger' -c'Joe' < tiger.raw > tiger.fbm
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XModified by Butler Hine.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1095 -ne `wc -c <'qrt2fbm.1'`; then
- echo shar: \"'qrt2fbm.1'\" unpacked with wrong size!
- fi
- # end of 'qrt2fbm.1'
- fi
- if test -f 'raw2fbm.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'raw2fbm.1'\"
- else
- echo shar: Extracting \"'raw2fbm.1'\" \(1901 characters\)
- sed "s/^X//" >'raw2fbm.1' <<'END_OF_FILE'
- X.TH RAW2FBM 1 07-Mar-89
- X.CM 3
- X.SH NAME
- Xraw2fbm \- convert raw image files to FBM format (especially Digi-View files)
- X.SH SYNOPSIS
- X.nf
- Xraw2fbm [ -t'title' -c'credits' -a<aspect>
- X -w<width> -h<height> -d'<planes> ] < rawfile > fbm
- X.fi
- X.SH DESCRIPTION
- X.PP
- XConverts a raw image (stored in row major order, or red/green/blue for
- Xcolor images) to fbm format. The defaults are width=640, height=400,
- Xdepth=1, and aspect ratio=1.2 (the correct settings for output
- Xfrom the Amiga Digi-View package).
- X.SH OPTIONS
- X.TP
- X.BR -d
- X.I depth,
- Xnumber of byte planes in image. Default is 1. Use -d3 for RGB color
- Ximages.
- X.TP
- X.BR -w
- X.I width,
- Xnumber of pixels per row, assumes 1 byte per pixel. The default is 640.
- X.TP
- X.BR -h
- X.I height,
- Xnumber of rows in image. The default is 400.
- X.TP
- X.BR -a
- X.I aspect ratio,
- Xthe ratio of the height to width of a single pixel. The default is 1.2
- X(for Digi-View files).
- X.TP
- X.BR -t'title'
- X.I title,
- Xspecify a character string (up to 80 characters) to describe the image.
- XThe default is no title.
- X.TP
- X.BR -c'credits'
- X.I credits or subtitle,
- Xspecify a second character string (up to 80 characters) to describe the
- Ximage. The default is no credit string.
- X.SH EXAMPLE
- X.PP
- XAssume a Digi-View "raw" color image of a tiger, 640x400 pixels with
- X1.2 to 1 aspect ratio (EL Arts calls is 1.1):
- X.sp
- X % raw2fbm -a1.2 -w640 -h400 -d3 \
- X.br
- X -t'Tiger' -c'Joe' < tiger.raw > tiger.fbm
- X.sp
- Xor in this case:
- X.sp
- X % raw2fbm -d3 -t'Tiger' -c'Joe' < tiger.raw > tiger.fbm
- X.SH SEE ALSO
- Xfbm(1) for general discussion, pbm(1) for PBM routines.
- X.SH BUGS
- XNone known.
- X.SH HISTORY
- XCopyright (c) 1989 by Michael L. Mauldin.
- XPermission is granted to use this program in whole or in part provided
- Xthat you do not sell it for profit and that this copyright notice is
- Xretained unchanged.
- X.TP
- X07-Mar-89 Michael L. Mauldin at Carnegie Mellon University
- XBeta release (version 0.9) mlm@cs.cmu.edu
- END_OF_FILE
- if test 1901 -ne `wc -c <'raw2fbm.1'`; then
- echo shar: \"'raw2fbm.1'\" unpacked with wrong size!
- fi
- # end of 'raw2fbm.1'
- fi
- if test -f 'tga2fbm.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'tga2fbm.c'\"
- else
- echo shar: Extracting \"'tga2fbm.c'\" \(1373 characters\)
- sed "s/^X//" >'tga2fbm.c' <<'END_OF_FILE'
- X/*****************************************************************
- X * tga2fbm.c: FBM Library 0.93 (Beta test) 03-May-89 Michael Mauldin
- X *
- X * Copyright (C) 1989 by Michael Mauldin. Permission is granted to
- X * use this file in whole or in part provided that you do not sell it
- X * for profit and that this copyright notice is retained unchanged.
- X *
- X * tga2fbm.c: convert a bitmap to Targa format
- X *
- X * USAGE
- X * % tga2fbm [ image ] > image.tga
- X *
- X * EDITLOG
- X * LastEditDate = Wed May 3 21:50:43 1989 - Michael Mauldin
- X * LastFileName = /usr2/mlm/src/misc/fbm/tga2fbm.c
- X *
- X * HISTORY
- X * 03-May-89 Michael Mauldin (mlm) at Carnegie Mellon University
- X * Beta release (version 0.93) mlm@cs.cmu.edu
- X *****************************************************************/
- X
- X# include <stdio.h>
- X# include <math.h>
- X# include "fbm.h"
- X
- X# define USAGE\
- X"Usage: tga2fbm [ image ] > image.tga"
- X
- X#ifndef lint
- Xstatic char *fbmid =
- X "$FBM tga2fbm.c <0.93> 03-May-89 (C) 1989 by Michael Mauldin$";
- X#endif
- X
- Xmain (argc, argv)
- Xint argc;
- Xchar *argv[];
- X{ FBM image;
- X
- X /* Clear pointers */
- X image.cm = image.bm = (unsigned char *) NULL;
- X
- X /* Open input if given */
- X if (argc > 1)
- X { if (freopen (argv[1], "r", stdin) != stdin)
- X { perror (argv[1]);
- X exit(1);
- X }
- X }
- X
- X if (read_tga (&image, stdin, "", 0) &&
- X write_fbm (&image, stdout))
- X { exit(0); }
- X else
- X { exit (1); }
- X}
- X
- END_OF_FILE
- if test 1373 -ne `wc -c <'tga2fbm.c'`; then
- echo shar: \"'tga2fbm.c'\" unpacked with wrong size!
- fi
- # end of 'tga2fbm.c'
- fi
- echo shar: End of archive 1 \(of 8\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-